Computer system with motion-triggered alarm procedure

ABSTRACT

A computer system includes a video input device that generates video data representing a field of view in front of the video input device. The computer system further includes a buffer and a video processing module. The buffer is configured to record a video clip of the field of view in front of the video input device. The video processing module is connected to the buffer and the video input device. The video processing module includes a video capture device to encode the video data, and a signal processing module. The signal processing module processes the encoded video data in order to calculate an average value of the video data indicative of motion within the field of view in front of the video input device. The signal processing module generates an alarm if the average value is above a predetermined threshold value.

RELATED APPLICATION

This application claims the benefit of priority under 35 U.S.C. 119(e)of U.S. Provisional Application No. 60/107,985, filed Nov. 12, 1998.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to a computer system. More particularly, theinvention relates to a computer system configured to detect motion.

2. Description of the Related Art

An example of a computer system includes a conventional computer havingconventional computer electronics, such as a central processing unit(CPU), a hard disc drive, an audio card and a video card. A mouse, akeyboard and a monitor are in most cases considered part of thecomputer.

Such a computer system typically processes text, graphics, voice orvideo. Often, the computer system includes a hard disc drive to handlethe large amounts of data involved in these interactions. In addition,depending on the user's specific applications, the computer system canbe further connected to loudspeakers, a microphone and to a videocamera. Conventional sound and video cards within the computer allowoperation of these additionally connected devices.

Conventional computer systems often have an interface (e.g., a modem,network connection), that allows the user to send and receive electronicmail (e-mail) via a local network or the INTERNET. For instance, thecomputer system may be configured to “surf” the INTERNET, make telephonecalls, send individual pictures, video clips, or play music from radiostations around the world.

When a user is not using the computer system, the computer system isswitched off or running in an idle or stand-by mode. In the idle orstand-by mode, conventional computer systems typically display screensavers or perform other tasks that require a small fraction of thecomputer system's performance. An example of such a task is waiting forincoming electronic mail or facsimiles.

SUMMARY OF THE INVENTION

In one embodiment, the invention uses the time when a user is away froma computer system to perform video surveillance of a viewing area. Inother embodiments, the invention performs video surveillance of aviewing area as specified by a user. In particular, the invention usesvideo technology in a novel way to detect motion in a viewing area. Oncethe invention detects motion, embodiments of the invention can alsoperform a variety of predefined activities. For example, when motionoccurs in a viewing area, the invention product can record the viewingarea for security purposes, signal an alarm or notify a remote location.

In one embodiment, a video camera is connected to a video processingsystem. The video processing system converts the video data from thecamera to encoded video segments that generally vary in size based onthe amount of motion in the video camera's field of view.

A processor averages the video segments to determine when sufficientmotion exists in the field of view. In one embodiment, the processorcalculates a weighted average which places greater emphasis on the morerecent video segments. The processor then compares the weighted averageto a threshold to determine when sufficient motion exists in the fieldof view.

In one embodiment of the present invention, a conventional video cameraand a computer can be used as a security or monitoring system. Thiscomputer system is triggered by motion detected in front of the videocamera. Once triggered, the computer system records both a video clipand sound, and can trigger an alarm or a notification. For example, aworking parent can use the computer to receive an automatic notificationthat the children have returned home from school safely. Alternatively,an office worker can use the computer to determine who was looking forhim while he was away from his desks. Under certain circumstances, theuser may connect the system directly to the police or a private securitysystem.

One aspect of the invention relates to a motion-detection system thatdetects motion in a field of view. The motion-detection system isconfigured to process encoded video data about the field of view todetermine when sufficient motion exists in the field of view. Themotion-detection system comprises a video camera that generates a seriesof video frames that represents a field of view in front of the videodevice.

The motion-detection system further comprising a video encoder incommunication with the video frames. The video encoder is configured toprocess the video frames to generate encoded video frames wherein thesize of the encoded video frames vary based on the amount of motion inthe field of view.

A computer is in communication with the encoded video frames, thecomputer comprising a threshold value stored in a computer accessiblestorage medium. The computer further comprising a processor incommunication with the encoded video data and the threshold value. Theprocessor is configured to process the encoded video frames to determinea weighted average of at least a portion of the encoded video frames.The processor is further configured to detect motion when the weightedaverage exceeds the threshold value.

Another aspect of the invention relates to a motion-detection apparatusthat comprises a series of video segments configured to vary in sizebased on movement in a field of view. The motion-detection apparatusfurther comprises a processor configured to process at least a portionof the video segments to determine an average. The processor is furtherconfigured to detect motion when the average exceeds a threshold.

Another aspect of the invention relates to an article of manufacturecomprising a signal processing module stored in a computer accessiblestorage media and executable by a processor. The signal processingmodule is configured to calculate an average of multiple video segmentsthat vary in size based on movement in a field of view. The signalprocessing module is further configured to detect motion when theaverage exceeds a threshold.

An additional aspect of the invention relates to a motion-detectionapparatus that comprises a series of video segments configured to varyin size based on movement in a field of view. The motion-detectionapparatus fierier comprises a means for processing at least a portion ofthe video segments to determine an average. The means also detectingmotion when the average exceeds a threshold.

Another aspect of the invention relates to a method of detecting motioncomprising the act of generating video data that represent a field ofview and encoding the video data to generate encoded video segments thatvary in size based on the amount of motion in the field of view. Themethod also comprising the acts of determining a weighted average of atleast a portion of the encoded video segments and detecting motion whenthe weighted average equals or exceeds a threshold.

An additional aspect of the invention relates to a method of detectingmotion comprising the act of receiving video segments that vary in sizebased on movements in a field of view. The method also comprising theact of calculating an average of at least a portion of the videosegments. The method further comprising the act of detecting motion whenthe average exceeds a threshold.

Another aspect of the invention relates to a motion-detection systemthat transfers video segments stored in a buffer to a computeraccessible storage medium when motion is detected in a field of view.The motion-detection system comprises a video camera with a field ofview, the video camera configured to generate video data about the fieldof view.

The motion-detection system further comprising a video encoderconfigured to process the video data to generate video segments thatvary in size based on the amount of motion in the field of view. Themotion-detection system further comprising a buffer which stores aportion of the video segments occurring prior to a detection of motionand a portion of the video segments occurring after the detection ofmotion.

The motion-detection system also comprising a processor configured tolocate in the buffer the oldest encrypted video segment whichindependently defines an image within the field of view. The processorfurther configured to transfer the oldest encrypted video segment andsubsequent encrypted video segments from the buffer to a computeraccessible storage medium.

Another aspect of the invention related to a motion-detection apparatuscomprising a buffer that stores video segments which vary in size basedon movement in a field of view. The motion-detection system furthercomprising a processor that is configured to locate in the buffer aprior video segment occurring before the detection of motion. Theprocessor is further configured to transfer the prior video segment andsubsequent video segments from the buffer to a computer accessiblestorage medium.

An additional aspect of the invention related to a motion-detectionapparatus comprising a first means for temporarily storing videosegments which vary in size based on movement in a field of view. Themotion-detection apparatus further comprising a second means forlocating in the buffer a prior video segment occurring before thedetection of motion. The second means transferring the prior videosegment and subsequent video segments from the buffer to a computeraccessible storage means.

Another aspect of the invention related to an article of manufacturecomprising a buffer module stored in a computer accessible storage mediaand executable in a processor. The buffer module configured totemporarily store video segments which vary in size based on movement ina field of view.

The article of manufacture further comprising a signal processing modulestored in a computer accessible storage media and executable in aprocessor. The signal processing module is configured to locate in thebuffer module a prior video segment occurring before the detection ofmotion. The processor is further configured to transfer the prior videosegment and subsequent video segments from the buffer to a computeraccessible storage medium.

Another aspect of the invention related to a method of detecting motioncomprising the act of generating video data that represent a field ofview. The method also comprising the act of encoding the video data togenerate encoded video segments that vary in size based on the amount ofmotion in the field of view. The method further comprising the act ofstoring in a buffer, at least a portion of the video segments occurringprior to a detection of motion and at least a portion of the videosegments occurring after the detection of motion.

The method also comprising the act of locating in the buffer the oldestencrypted video segment which independently defines an image within thefield of view. The method further comprising the act of transferring theoldest encrypted video segment and subsequent encrypted video segmentsfrom the buffer to a computer accessible storage medium.

An additional aspect of the invention related to a method of storingvideo data comprising the act of storing in a buffer, video segmentswhich vary in size based on movement in a field of view. The method alsocomprising the act of locating in the buffer a prior video segmentoccurring before the detection of motion. The method further comprisingthe act of transferring the prior video segment and subsequent videosegments from the buffer to a computer accessible storage medium.

An aspect of the invention involves a computer system. The computersystem includes a video input device to generate video data representinga field of view in front of the video input device, and a computerconnected to the video input device. The computer includes a buffer anda video processing module. The buffer is configured to record a videoclip of the field of view in front of the video input device. The videoprocessing module is connected to the buffer and the video input device.The video processing module includes a video capture device to encodethe video data in consecutive frames of varying size, and a signalprocessing module. The signal processing module processes the encodedvideo data in order to calculate an average value of the size of theencoded video data, and to generate an alarm signal if the average valueexceeds a predetermined threshold value. The alarm signal indicates thatsufficient motion has been detected in front of the video input device.

A further aspect of the invention involves a method for detecting motionwith a computer system. Encoded video data is received from a videocapture device. The encoded video data represents a field of view infront of a video input device, and includes frames of variable lengths.The length of a frame depends on motion within the field of view. Anaverage value for the variable lengths of the frames is calculated andcompared with a predetermined threshold value which defines no motionthreshold in the field of view. If the average value is greater than thepredetermined threshold value, an alarm signal is generated. The alarmsignal indicates that the motion within the field of view is higher thanin the no-motion threshold.

Another aspect of the invention involves a video processing module. Thevideo processing module includes a video capture device and a signalprocessing module. The video capture device is configured to encodevideo data generated by a video input device. The encoded video datarepresents a field of view in front of the video input device. Thesignal processing module is connected to the video capture device andconnectable to an interface module and a buffer. The signal processingmodule is configured to process the encoded video data in order tocalculate an average value of the video data indicative of motion withinthe field of view in front of the video input device. If the averagevalue is above a predetermined threshold value, an alarm signal isgenerated.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other aspects, advantages, and novel features of the inventionwill become apparent upon reading the following detailed description andupon reference to the accompanying drawings.

FIG. 1 is a general overview of a communications system comprising acomputer system associated with individual communications networks.

FIG. 2 is a block diagram of the computer system.

FIG. 3 is a block diagram of a signal processing module included in thecomputer system of FIG. 2.

FIG. 4 is an overview of a graphical user interface.

FIG. 5 is a flow diagram illustrating a procedure for detecting motionwith the computer system.

FIG. 6 is a flow diagram illustrating a procedure for determining “nomotion.”

FIG. 7 is a flow diagram illustrating a procedure for calculating amotion parameter.

FIG. 8 is a flow diagram illustrating a procedure to transfer data.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 shows a block diagram of a computer 1. In one embodiment, thecomputer 1 is connected to an external video input device 2. Thecomputer 1 includes conventional computer electronics including amotherboard containing the processor and an associated chip set, acommunications bus, a power supply and various interface and driveelectronics.

In another embodiment, the computer 1 is a processor configured toperform specific tasks. The computer 1 may have a configuration based onIntel Corporation's family of microprocessors, such as the PENTIUMfamily and Microsoft Corporation's WINDOWS operating systems such asWINDOWS 95, WINDOWS 98, or WINDOWS NT.

It is contemplated, however, that the computer 1 can be implemented witha wide range of computer platforms using conventional general purposesingle chip or multichip microprocessors, digital signal processors,embedded microprocessors, microcontrollers and the like. It is alsocontemplated that the computer 1 may be implemented with a wide range ofoperating systems such as Unix, Linux, Microsoft DOS, Macintosh OS, OS/2and the like.

Although not shown, it is contemplated that in some embodiments, thecomputer 1 may include a video display (monitor), a keyboard, a mouse,loudspeakers or a microphone. In alternative embodiments, the videoinput device 2 can also be integrated into a housing of computer.

A user can operate the computer 1 independently, or as a part of acomputing system. FIG. 1 illustrates an exemplary application in whichthe computer 1 is connected to a computer network 8, and a publictelephone network 10 (PSTN). Via these networks 8, 10, the computer 1can communicate with an emergency communication device 16 (indicated as“911”), a telephone 12 (indicated as “PHONE”), or other computers 18(indicated as “PC”). The emergency communications device 16, thetelephone 12 and the computers are usually in the domain of other users.The emergency communications device 16, for example, can be locatedwithin an office of a security service or the police.

As illustrated in FIG. 1, the user can also connect an apparatus 14 tothe computer 1. The apparatus 14 can be connected to the interfacemodule 6 or a serial or parallel port of the computer 1. The apparatus14 is configured to indicate a visual or an acoustic alarm signal, or acombination of these alarm signals, at a local or remote location. Theapparatus 14 can be located close to the computer 1, for example, withinthe same room, or at a remote office of a security service. In oneembodiment, the optional loudspeakers or the video display may be usedas the apparatus 14.

In the illustrated embodiment of an exemplary application of thecomputer 1, the computer 1 is connected to a communications system andthe apparatus 14. However, those skilled in the art will appreciate thatthe communications system and the apparatus 14 are optional. Thecomputer 1 in accordance with an embodiment of the inventions isoperable independently from the networks 8, 10 and the apparatus 14.

Within the illustrated (optional) network 8, 10 voice and datacommunications occurs via conventional communications links, which maybe any of a variety of communications channels which allow transfer ofdata. Examples for such communications links are twisted pair or coaxialcables or fiber optical connections. For instance, in addition tovarious analog systems, digital networks may include a T-1 (1.544Megabits per second) or a T-3 (45 Megabits per second) carrier system,an integrated services digital network (ISDN), Ethernet, InternetProtocol, or the like.

In one embodiment, the computer 1 includes a video processing module 4which is connected to a buffer 22 and an interface module 6. The videoprocessing module 4 is associated with the video input device 2 andreceives video data from the video input device 2. The buffer 22 has abidirectional connection with the video processing module 4 and isfurther connected to a storage device 24, typically a hard disc drive.

The exemplary interface module 6 includes several individual interfaces,for example, an interface 7 for message applications (MAPI), aninterface 9 for telephony applications (TAPI) 9, an interface 11 forlocal network applications, and an interface 13 for paging applications.The interface module 6 provides for communications links between thecomputer 1 and the apparatus 14, and between the computer 1 and thenetworks 8, 10.

The interface for message applications, hereinafter referred to as theMAPI interface 7 (Messaging Application Programming Interface) is amessaging architecture and a user interface component for applicationssuch as electronic mail (e-mail), scheduling, calendaring and documentmanagement. As a messaging architecture, the MAPI interface 7 provides aconsistent interface for multiple application programs to interact withmultiple messaging systems across a variety of hardware platforms. TheMAPI interface 7 provides programming interfaces used by the userapplications and any service providers.

Messages from the multiple messaging systems can be delivered to asingle “universal inbox”. The MAPI interface 7 is built into versions ofWindows 95, Windows 98 and Windows NT. The programming interface andsubsystem contained in the MAPI dynamic link library (DLL) provideobjects which conform to a known component object model. The MAPIinterface 7 includes standard messaging client applications thatdemonstrate different levels of messaging support. In other embodimentsof the interface module 6, the interface module 6 can include a messageinterface that is adapted to other message protocols or communicationsstandards.

The interface for telephony application, hereinafter referred to as theTAPI interface 9 (Telephone Application Program Interface), is a Windows95 application program interface enabling hardware independent access totelephone based communication. The TAPI interface 9 covers a wide areaof services from initializing the equipment (e.g., a modem) and placinga call to voice mail system or controlling a remote computer. Similar tothe MAPI interface 7, the TAPI interface 9 can be substituted by aninterface that is adapted to other telephony protocols andcommunications standards.

The interface module 6 includes one or more application specificdrivers, for example, modem drivers, network adapter drivers, andterminal adapter drivers. It is contemplated that the interface module 6can be configured according to the requirements of a specific user. Thatis, some of these individual interfaces are optional. Furthermore, it iscontemplated that the individual interfaces can interact with eachother. For example, the MAPI interface 7 can interact with the TAPIinterface 9 to send messages over the PSTN 10 and to receive messagestherefrom.

The video input device 2 can either be connected to the computer 1 orintegrated into the computer 1 as described above. The video inputdevice 2 can be any image source, such as one of many types of videocameras, such as digital cameras, desktop video cameras, videocamcorders, parallel-port cameras, handycams, and universal serial-bus(USB) cameras. Hereinafter, the video input device 2 is referred to asthe video camera 2. Some type of video input devices may require videocapture electronics (video capture device 19 in FIG. 2) which arecontained on a single video card within the computer 1. An exemplaryvideo card includes an integrated circuit 848 available from Brooktree.

FIG. 2 is a block diagram of the video processing device 4 connected tothe video camera 2, the buffer 22 and the interface module 6. The videoprocessing device 4 includes a video capture device 19 and a signalprocessing module 20. The video capture device 19 is connected to thevideo camera 2 and the signal processing module 20. The signalprocessing module 20 is connected to the interface module 6.

In one embodiment, the video capture device 19 encodes and compressesvideo data originating from the video camera 2. It is contemplated thatin one embodiment video data can be encoded in an encoder separate fromthe video capture device 19. In other embodiments, the encoding may beperformed by the camera 2. The video capture device 19 uses an encodingscheme to encode and to compress the video data. The encoding scheme isbased on public standards defined by the Moving Pictures Experts Group(MPEG) of the International Organization of Standards (ISO), whichreleased standards such as MPEG-1 and MPEG-2. Similar standards such asthe H.263 standard are released by the International TelecommunicationsUnion (ITU). These standards provide an efficient way to represent imagesequences in the form of compact coded data.

In one embodiment, the computer 1 uses an H.263 encoder. The videocapture device 19 is hereinafter referred to as the encoder 19. However,it is contemplated that other standards such as MPEG-2, H.262 or newgenerations of these standards can be used. Hereinafter, a shortoverview of the H.263 standard is given as far as it is considered to behelpful for understanding the present invention. For a detaileddescription, however, reference is made to the complete H.263 standardfrom the ITU.

The H.263 standard is used for video conferencing applications. Basicbuilding components of a coded picture are blocks and macroblocks.Blocks and macroblocks are extracted from an input picture such as aframe of video data. The encoder 19 compares the macroblocks in a framewith macroblocks from previous frames.

The encoder 19 uses either intra or inter encoding techniques to encodethe macroblocks. Intra techniques compress a picture using informationfrom that picture. Inter techniques compress a picture using informationfrom other pictures displaced in time. Thus, an intra-frame has intraencoded macroblocks that rely on information existing within the frame.An inter-frame has one or more inter encoded macroblocks that rely oninformation from other pictures. Additionally, according to the H.263specification, the encoder 19 generates an intra-frame if an intra-framehas not been generated in the last 132 frames.

The encoder 19 outputs encoded video data. The encoded video data variesin part based on the amount of motion in the field of view of the videocamera 2. The signal processing device 20 processes the encoded videodata in order to determine if any motion occurred in front of the camera2, and if this motion is above a user-defined threshold for “no motion.”Generally, more motion results in bigger inter-frames, and less motionresults in smaller inter-frames. In one embodiment of the signalprocessing device 20, the size (length) of an inter-frame is evaluated.The size of an inter-frame corresponds, for example, directly to thenumber of bytes within an inter-frame.

While one embodiment processes encoded inter-frames, it is contemplatedthat other embodiments can process a wide range of video segments todetermine whether motion exists in a viewing area. The video segmentsmay include blocks of video data, macroblocks of video data, frames ofvideo data, encrypted video data, code video data, compressed video dataand the like.

The signal processing device 20 communicates with the buffer 22 via abidirectional data link. Thus, under certain circumstances, the signalprocessing module 20 can write video data to the buffer 22 and readvideo data from the buffer 22. The buffer 22 includes “old” data while“new” data is being added.

In one embodiment, the buffer 22 is a circular buffer having a storagecapacity of about 4096 bytes to record approximately 45 seconds. Inother embodiments, the storage capacity can vary to record video clipsof different lengths. Alternatively, the buffer 22 can be a first in,first out (FIFO) memory, or a storage organized similar to a shiftregister in which data is shifted serially after each clock cycle. Inanother embodiment, the buffer 22 can be a pointer-based buffer. Thepointer points to the next available storage cell. Under certaincircumstances, the data in the buffer 22 is transferred to the storagedevice 24.

In one embodiment, the storage device 24 is accessible by the computer1. While the storage device 24 is typically a hard disk, the storagedevice 24 may comprise any method or device for storing information. Forexample, the storage device 24 may comprise random access memory (RAM),floppy disks, laser disc players, digital video devices, compact discs,video tapes, audio tapes, magnetic recording tracks, and othertechniques that store data.

FIG. 3 shows a block diagram of the signal processing module 20, and,for illustrative purposes, the buffer 22 and the storage 24. The signalprocessing module 20 includes a module 26 which computes a value for theaverage length of the variable length codes received from the encoder19. Hereinafter, the module 26 is referred to as the averager 26. Theaverager 26 receives a control signal CTRL, which defines filtercoefficients. The averager relies on these filter coefficients tocompute the average value. The computation of the average value isdescribed in greater detail below in connection with FIGS. 5-7.

In one embodiment, the signal processing module 20 includes a module 28to determine if any motion has been detected. Hereinafter, the module 28is referred to as the motion evaluator 28. The motion evaluator 28 isconnected to the averager 26 to receive the average value calculated bythe averager 26. The motion evaluator 28 receives a control signal TL.The control signal TL represents a threshold value above which themotion evaluator 28 indicates that sufficient motion is present in thefield of view of the camera 2.

The motion evaluator 28 is connected to the buffer 22 and to a buffercontroller 32. The buffer controller 32 is connected to the interfacemodule 6 and the storage 24. As shown in FIG. 3, the buffer 22 isfurther directly connected to the encoder 19 to receive and store theencoded video data. Because of the limited storage capacity of thebuffer 22, the video data in the buffer 22 includes more recent videosegments.

The motion evaluator 28 generates an ALARM signal when there issufficient motion in front of the camera 2. That is, the ALARM signal isgenerated when the average value exceeds the threshold value. Thethreshold value determines the sensitivity for the motion detection sothat the user individually can define what “no motion” looks like. Themotion evaluator 28 typically does not generate an alarm if low randomenvironmental motion occurs. For example, clouds floating by outside awindow, shadows or the like should not cause an alarm. By means of thethreshold value, the motion evaluator 28 “knows” what no motion lookslike. The ALARM signal is input to the buffer 22 and the buffercontroller 32.

Upon receipt of the ALARM signal, the buffer controller 32 initiates atransfer of data. The buffer 22 continues to record the encoded videodata after the ALARM signal. In one embodiment, the buffer controller 32then transfers video data representing a video clip. The video clipincludes a first period of time before the ALARM signal and a secondperiod of time after the ALARM signal.

In one embodiment, the first period of time before the ALARM signalcorresponds to about one third of the content of the buffer 22. Thesecond period of time after the ALARM signal corresponds to about twothirds of the buffer's content. An example of a default setting for thelength of the video clip is 30 seconds. In this case, the video clipincludes 10 seconds before the ALARM signal and 20 seconds after theALARM signal, i.e., the first 20 seconds of an intrusion. However, inother embodiments, the amount of buffer space dedicated to the first andsecond periods of time may vary.

In one embodiment, the user can define where the video data, i.e., thevideo clip, is to be transferred after the ALARM signal. In some cases,the video data will be transferred to the storage 24. Because the videoclip is transferred to the storage 24 and stored thereon, the user canwatch the video clip as soon as the user returns to the computer 1. Theuser can watch the stored video clip and see what was going onimmediately before the ALARM signal was generated, and for a certainperiod of time after the ALARM signal was generated.

The video clip may also be transferred to the interface module 6 forfurther processing. This further processing includes determining whethera telephone message, an e-mail or a local acoustic alarm needs to beexecuted automatically. The e-mail may include a text message, the videoclip or some combination thereof. An e-mail including the video clip isreferred to as a video e-mail.

By means of a graphical user interface (GUI) the user can set thecomputer system and define how the computer system should react upongeneration of the ALARM signal. FIG. 4 shows an exemplary GUI 800 toillustrate several options the user has. In one embodiment, the GUI 800has four fields which the user can define. In a field 802, the user canset a level of sensitivity between “Low” and “High.” The usersubjectively adjusts the sensitivity level of the computer system. Incase the user selects a relatively high sensitivity level, minute motionin front of the camera 2 is sufficient to cause an alarm. Whileadjusting the sensitivity level, the user can observe an indicator 803which goes on when the motion is above the present sensitivity level.

In a field 804, the user can define several parameters for the operationof the computer system. For instance, the user can set a timer 805 a todefine a delay time (in seconds). In the illustrated embodiment, thealarm procedure “waits” for 5 seconds before the alarm procedure istriggered and executed. The delay time allows the user to leave thefield of view in front of the camera 2 without triggering the alarmprocedure. In addition, the user can set a recording timer 805 b whichdetermines the length of a video clip. In the illustrated embodiment,the recording timer 805 b is set to 30 seconds.

In field 804, the user can further set a trigger counter 801 to definehow often the alarm procedure can be triggered. After each executedalarm procedure which generated a video clip, the alarm procedure isreset and enabled to trigger the next alarm procedure. For example, inan office application, the user can record each intrusion into theoffice while the user was gone.

In a field 806, the user can select one or more options defining themode of notification after an ALARM signal has been generated. Forexample, in an office environment, the user may choose the option 807,“Save to File,” which stores the video clip on the storage 24. The usercan play the video clip when he returns to his office. This allows himto determine who was looking for him while he was away from his desk. Inthe example of a working parent, the user may choose the options 808,“Call to,” or 809, “E-mail to” to receive an automatic notification thatthe children have safely returned home from school. The user can definethe desired telephone number and the e-mail address. In the illustratedembodiment, the notification can be an automatic voice message, atext-only e-mail or a video e-mail.

In a field 810, the user can additionally define if an acoustic alarmshould be generated within his office, home, building, or at a remotelocation. In the illustrated embodiment, the user selected a sound file811, which is to be played upon an alarm.

FIG. 5 is an exemplary flow diagram illustrating the alarm procedure ofthe computer 1 within the computer system. It is contemplated that thealarm procedure is implemented in a conventional programming language,such as C or C++. The alarm procedure and the software necessary toinstall it is on a computer accessible storage medium. The computeraccessible storage medium may comprise any method of storinginformation. For example, the storage medium may comprise random accessmemory (RAM), hard discs, floppy disks, laser disc players, digitalvideo devices, compact discs, video discs, video tapes, audio tapes,magnetic recording tracks, and the like.

The alarm procedure is initialized when the computer 1 and the videocamera are activated (“running”) as indicated by a start block 400.Proceeding to block 402, the alarm procedure initializes the video alarmsystem. For example, the procedure verifies if the video camera 2 isproperly operating, and if the optional communications links areestablished. In addition, the user can define parameters such as thesensitivity level, and the length of the video clip.

Proceeding to block 404, if the video camera 2 and the communicationslinks are operating properly, the video alarm system starts receivingthe encoded video data from the video camera 2 on a frame-by-framebasis. Hereinafter, the encoded video data is referred to as the encodeddata. In one embodiment, the alarm procedure uses the first incomingframes of the encoded data to determine a “no motion” state. That is,the alarm procedure determines what “no motion” looks like. As describedabove, the user sets the sensitivity level, which is used in block 402to determine if motion has been detected. An example of a sub-procedure“INITIALIZE” to determine the “no motion” state is illustrated in FIG. 6and described below.

The blocks 402, 404 are shown as two consecutive blocks for illustrativepurposes. It is contemplated that the video alarm system is initializedby using the received encoded data. Furthermore, the blocks 402, 404could either be combined or their order could be reversed.

Proceeding to block 406, the buffer 22 receives the encoded data as aninput signal. The buffer 22 stores (holds) the “newest” encoded data anddrops the “oldest” encoded data. The content of the buffer 22 representsthe field of view in front of the camera 2. Further treatment of thecontent of the buffer 22 depends upon whether or not the alarm proceduregenerates an alarm as described below.

Proceeding to block 408, the averager 26 receives the encoded data as aninput signal parallel to the block 408. That is, the encoded data isinput to the buffer 22 and the averager 26. The averager 26 uses theencoded data to calculate a value for the weighted average (the “averagevalue AV”) of the size of the frames. An example of a sub-procedure tocalculate the weighted average (CALCULATE WEIGHTED AVERAGE) is shown inFIG. 7 and described below.

Proceeding to block 410, the motion evaluator 28 compares the averagevalue AV with the threshold value TL which defines the sensitivity levelof the video alarm system. In one embodiment, the threshold value TL ismultiplied by a factor of, for example, 300 and increased by, forexample, 500 to adjust the unit-less threshold value so that it may becompared with the average frame size, which is expressed in units of,for example, bytes. These values can be determined empirically. In thiscase, the average value is compared with the adjusted threshold value.If the average value AV is below the threshold value TL, the alarmprocedure returns along the NO branch to block 404. If case the averagevalue AV is above the threshold value TL, the alarm procedure proceedsalong the YES branch to block 412. In this case, the motion evaluator 28generates the ALARM signal indicating that there is more motion in frontof the video camera 2 than in the “no motion” state.

Proceeding to block 412, the alarm procedure continues to record thevideo clip for a predetermined period of time and then startstransferring the encoded data from the buffer 2. In some cases, thetransfer of the encoded data includes a transfer to the storage 24.However, depending on the user-defined settings of the video alarmsystem, the encoded data can also be transferred to the interface module6 as described above.

Proceeding to block 414, following the transfer of the encoded data, thealarm procedure generates a user-defined notification or ALARM. Forinstance, the interface module 6 can perform sub-procedures to executethe desired notification. The desired notification includes sending atextual e-mail, a video e-mail, initiating an automatic call or anacoustic alarm as described above. Proceeding to block 416, the alarmprocedure ends.

FIG. 6 shows an exemplary flow diagram of the sub-procedure “INITIALIZE”of FIG. 5 to determine the “no motion” state. Starting at block 500, thesub-procedure is reset and initialized. Proceeding to block 502, theuser can set the threshold value TL, which is in one embodiment aninteger between 1 and 99.

Proceeding to block 504, the sub-procedure processes the threshold valueTL to compute a digital filter coefficient k. The sub-procedureimplements a method known as an exponential averaging filter. For theequation:

AVERAGE=k(AVERAGE)+(1−k)(SIZE OF PREVIOUS INTER-FRAME).

The filter coefficient k can be the maximum value of either 1) a minimumvalue k_(min) for the filter coefficient k or 2) an adjusted thresholdvalue. The value k_(min) varies based on the number of encodedinter-frames. In one embodiment, if the total number of encoded(trigger) frames is below 10, the minimum value k_(min) for the filtercoefficient k is 0.99. If the number of encoded (trigger) frames is 10or above, the minimum value k_(min) for the filter coefficient k is inone embodiment 0.8. In another embodiment, the minimum value k_(min) forthe filter coefficient k can be 0.75.

The sub-procedure compares k_(min) with an adjusted threshold value TLto determine which value is larger. The sub-procedure arrives at theadjusted threshold value by, for example, dividing the user-specifiedthreshold value TL by a constant value of 1000 and adding 0.8. Inanother embodiment, the user-specified threshold value TL can be dividedby 100 or some other number so as to adjust the threshold value so thatit is comparable to the minimum value k_(min). The filter coefficient kis then the maximum value of either the minimum value k_(min) or theadjusted threshold value. Since the user-specified threshold value TLranges from 1 to 99, the adjusted threshold value typically ranges from0.801 to 0.899.

Proceeding to block 506, the sub-procedure receives the firstinter-frame (N=1) and determines the size (length) of the firstinter-frame. As discussed above, in one embodiment, the inter-frames arereceived on a frame-by-frame basis. Proceeding to block 506, thesub-procedure adds the size of the first inter-frame to an initialvalue, for example, zero, and generates a sum value. An integer Nrepresents the number of the received inter-frames.

Proceeding to block 510, the sub-procedure determines if teninter-frames (N=10) have been received and added. If less than teninter-frames have been added, the sub-procedure returns along the NObranch to block 506. If ten inter-frames have been added, thesub-procedure proceeds along the YES branch to block 512.

Proceeding to block 512, the sub-procedure divides the sum value by 10to determine the average size of the first ten frames. This average sizerepresents the “no motion” state within the present field of view infront of the camera 2. The sub-procedure ends at block 514.

FIG. 7 is an exemplary flow diagram illustrating the sub-procedure“CALCULATE WEIGHTED AVERAGE” of FIG. 5 to calculate the value for theweighted average of the size of the frames. While the illustratedembodiment calculates a weighted average, it is contemplated that otherembodiments calculate an average or a sum of the video segments.

Starting at block 600, the sub-procedure is initialized. Proceeding toblock 602, the average size of the first ten frames (N=10) is determinedwhich represents the “no motion” state. Proceeding to block 604, thesub-procedure receives inter-frames. When the sub-procedure receives aninter-frame, a counter for the integer N is increased (N=N+1) after eachframe. Proceeding to block 606, sub-procedure calculates the weightedaverage of the size of the inter-frames. The sub-procedure weights thesize of each new inter-frame lower than the average size of all theprevious inter-frames. However, since the average size of the previousinter-frames takes into consideration all of the previous inter-framesand the size of a new inter-frame represents only a single inter-frame,this places greater emphasis on the new inter-frame.

The sub-procedure weights the inter-frames according to the equation:

AVERAGE=k(AVERAGE)+(1−k)(SIZE OF PREVIOUS INTER-FRAME).

The sub-procedure ends at block 608 and the average value is furtherprocessed as explained above with reference to FIG. 5.

FIG. 8 is a flow diagram illustrating a procedure to transfer theencoded data from the buffer 22 after sufficient motion has beendetected in front of the camera 2. Starting at block 700, the procedureis initialized. Proceeding to block 702, the procedure prepares for thetransfer of the encoded data from the buffer 22. In the illustratedembodiment, the encoded data is transferred to the storage 24.

Proceeding to block 704, upon the receipt of the ALARM signal, theprocedure searches for a prior intra-frame in the buffer 22. Asdiscussed above, intra techniques compress a video segment usinginformation from that video segment. In one embodiment, the proceduresearches for the “oldest” intra-frame in the buffer 22. In otherembodiments, the procedure may search for a prior intra-frame in thebuffer 22. The procedure continues to record for a predetermined periodof time after the ALARM signal. The content of the buffer 22 representsthe video clip, wherein the oldest inter-frame corresponds to thebeginning of the recorded video clip.

Proceeding to block 706, the procedure transfers the content of thebuffer 22 to the storage device 24. The encoded data is stored withinthe storage device 24 and available for later use. For example, the usercan watch the video clip at a convenient time, as explained above. Whenthe encoded data is transferred, the procedure ends in block 708.Depending on the setting of the trigger counter 801 (FIG. 4), theprocedure is either disabled or reset and enabled for the next detectedalarms.

In one embodiment of the video alarm system, a conventional computer canbe used without requiring additional and mostly expensive hardware. Aconventional video camera which may already be connected to the computercan be used and the computer is converted to a security or monitoringsystem. This system is triggered by motion detected in front of thevideo camera. Once triggered, the system records a video clip and cantrigger an alarm or a notification. Under certain circumstances, theuser may desire to connect the system directly to the police or aprivate security system.

While the above detailed description has shown, described and identifiedseveral novel features of the invention as applied to a preferredembodiment, it will be understood that various omissions, substitutionsand changes in the form and details of the described embodiments may bemade by those skilled in the art without departing from the spirit ofthe invention. Accordingly, the scope of the invention should not belimited to the foregoing discussion, but should be defined by theappended claims.

What is claimed is:
 1. A computer system, comprising: a video inputdevice to generate video data representing a field of view in front ofthe video input device; a computer connected to the video input device,the computer comprising: a buffer configured to record a video clip ofthe field of view in front of the video input device; and a videoprocessing module connected to the buffer and the video input device,the video processing module comprising a video capture device to encodethe video data in consecutive frames of varying size, and a signalprocessing module, the signal processing module configured to processthe encoded video data in order to calculate an average value of thesize of the encoded video data, and to generate an alarm signal if theaverage value exceeds a predetermined threshold value, the alarm signalindicating that sufficient motion has been detected in front of thevideo input device.
 2. The computer system of claim 1, wherein the videoprocessing module further comprises a controller configured to control atransfer of the encoded video data from the buffer upon generation ofthe alarm signal.
 3. The computer system of claim 2, wherein thecontroller is configured to control the buffer to record the field ofview for a predetermined period of time after the alarm signal, thevideo clip including a first recording before the alarm signal and asecond recording after the alarm signal.
 4. The computer system of claim3, wherein the first recording is about one-third of the video clip andthe second recording is about two-thirds of the video clip.
 5. Thecomputer system of claim 4, further comprising a storage deviceconfigured to store the video data transferred from the buffer.
 6. Thecomputer system of claim 4, further comprising an interface moduleconfigured to connect the computer to an external communications line,the interface module connected to the video processing module.
 7. Thecomputer system of claim 6, wherein the signal processing module and theinterface module are configured to generate and send a predeterminednotification message to the communications line.
 8. The computer systemof claim 7, wherein the predetermined notification message is anelectronic mail message addressed to a predetermined address.
 9. Thecomputer system of claim 7, wherein the predetermined notificationmessage is an electronic mail message, including the video clip,addressed to a predetermined address.
 10. The computer system of claim7, wherein the predetermined notification message is a telephone calldirected to a predetermined number.
 11. The method of claim 4, furthercomprising the step of generating and sending a predeterminednotification message to an external communications line.
 12. The methodof claim 11, wherein the predetermined notification message is anelectronic mail message addressed to a predetermined address.
 13. Themethod of claim 11, wherein the predetermined notification message is anelectronic mail message, including the video clip, addressed to apredetermined address.
 14. The method of claim 11, wherein thepredetermined notification message is a telephone call directed to apredetermined number.
 15. A method of detecting motion in a field ofview in front of a video input device connected to a computer system,comprising the steps of: receiving encoded video data from a videocapture device, the encoded video data representing a field of view infront of a video input device, and including frames of variable lengths,the length of a frame depending on motion within the field of view;calculating an average value for the variable lengths of the frames;comparing the average value with a predetermined threshold value whichdefines a state of no motion within the field of view; and generating analarm signal if the average value is greater than the predeterminedthreshold value, the alarm signal indicating that the motion within thefield of view is higher than in the state of no motion.
 16. The methodof claim 15, further comprising the step of storing the encoded videodata in a buffer.
 17. The method of claim 16, further comprising thestep of transferring the encoded video data form the buffer upongeneration of the alarm signal.
 18. The method of claim 17, wherein thestep of storing includes recording the field of view for a predeterminedperiod of time after the alarm signal, the recording creating a videoclip including a first recording before the alarm signal and a secondrecording after the alarm signal.
 19. The method of claim 18, whereinthe first recording is about one-third of the video clip and the secondrecording is about two-thirds of the video clip.
 20. The method of claim18, wherein the step of transferring the encoded video data includestransferring the encoded video data to a storage device configured tostore the video clip.
 21. A motion-detection system that detects motionin a field of view, the motion-detection system configured to processencoded video data from the field of view to determine when sufficientmotion exists in the field of view, the motion-detection systemcomprising: a video camera that generates a series of video frames thatrepresent a field of view in front of the video device; a video encoderin communication with the video frames, the video encoder configured toprocess the video frames to generate encoded video frames wherein thesize of the encoded video frames vary based on the amount of motion inthe field of view; and a computer in communication with the encodedvideo frames, the computer comprising: a threshold value stored in acomputer accessible storage medium; and a processor in communicationwith the encoded video data and the threshold value, the processorconfigured to process the encoded video frames to determine a weightedaverage of at least a portion of the encoded video frames, the processorfurther configured to detect motion when the weighted average exceedsthe threshold value.
 22. The system of claim 21 wherein the processorgenerates a notification message when the processor detects motion. 23.The system of claim 21 wherein the processor is further configured tocommunicate the notification message to the interface module.
 24. Thesystem of claim 22 wherein the interface module is configured totransfer the notification message to a remote location via acommunications connection.
 25. The system of claim 23 wherein thenotification message is an electronic mail message.
 26. The system ofclaim 23 wherein the notification message comprises a portion of theencoded video data.
 27. The system of claim 21 further comprising abuffer memory which is configured to store a portion of the encodedvideo data obtained after to the detection of motion.
 28. The system ofclaim 27 wherein the buffer memory is configured to store a portion ofthe encoded video data obtained prior to the detection of motion. 29.The system of claim 28 wherein the processor transfers a portion of saidencoded video data in the buffer to a computer accessible recordingmedium.
 30. A motion-detection apparatus comprising: a series of videosegments configured to vary in size based on movement in a field ofview; and a processor configured to process at least a portion of thevideo segments to determine an average, the processor further configuredto detect motion when the average exceeds a threshold.
 31. An article ofmanufacture comprising a signal processing module stored in a computeraccessible storage media and executable in a processor, the signalprocessing module configured to calculate an average of multiple videosegments that vary in size based on movement in a field of view, thesignal processing module further configured to detect motion when theaverage exceeds a threshold.
 32. A motion-detection apparatuscomprising: a series of video segments configured to vary in size basedon movement in a field of view; and a means for processing at least aportion of the video segments to determine an average, the means alsodetecting motion when the average exceeds a threshold.
 33. A method ofdetecting motion comprising the acts of: generating video data thatrepresent a field of view; encoding the video data to generate encodedvideo segments that vary in size based on the amount of motion in thefield of view; determining a weighted average of at least a portion ofthe encoded video segments; and detecting motion when the weightedaverage equals or exceeds a threshold.
 34. A method of detecting motioncomprising the acts of: receiving video segments that vary in size basedon movements in a field of view; calculating an average of at least aportion of the video segments; and detecting motion when the averageexceeds a threshold.
 35. A motion-detection system that transfers videosegments stored in a buffer to a computer accessible storage medium whenmotion is detected in a field of view, the motion-detection systemcomprising: a video camera with a field of view, the video cameraconfigured to generate video data about the field of view; a videoencoder configured to process the video data to generate video segmentsthat vary in size based on the amount of motion in the field of view; abuffer which stores a portion of the video segments occurring prior to adetection of motion and a portion of the video segments occurring afterthe detection of motion; and a processor configured to locate in thebuffer the oldest encrypted video segment which independently defines animage within the field of view, the processor further configured totransfer the oldest encrypted video segment and subsequent encryptedvideo segments from the buffer to a computer accessible storage medium.36. A motion-detection apparatus comprising: a buffer that stores videosegments which vary in size based on movement in a field of view; and aprocessor that is configured to locate in the buffer a prior videosegment occurring before the detection of motion, the processor furtherconfigured to transfer the prior video segment and subsequent videosegments from the buffer to a computer accessible storage medium.
 37. Amotion-detection apparatus comprising: a first means for temporarilystoring video segments which vary in size based on movement in a fieldof view; and a second means for locating in the buffer a prior videosegment occurring before the detection of motion, the second meanstransferring the prior video segment and subsequent video segments fromthe buffer to a computer accessible storage means.
 38. An article ofmanufacture comprising: a buffer module stored in a computer accessiblestorage media and executable in a processor, the buffer moduleconfigured to temporarily store video segments which vary in size basedon movement in a field of view; and a signal processing module stored ina computer accessible storage media and executable in a processor, thesignal processing module configured to locate in the buffer module aprior video segment occurring before the detection of motion, theprocessor further configured to transfer the prior video segment andsubsequent video segments from the buffer to a computer accessiblestorage medium.
 39. A method of detecting motion comprising the acts of:generating video data that represent a field of view; encoding the videodata to generate encoded video segments that vary in size based on theamount of motion in the field of view; storing in a buffer, at least aportion of the video segments occurring prior to a detection of motionand at least a portion of the video segments occurring after thedetection of motion; locating in the buffer the oldest encrypted videosegment which independently defines an image within the field of view;and transferring the oldest encrypted video segment and subsequentencrypted video segments from the buffer to a computer accessiblestorage medium.
 40. A method of storing video data comprising the actsof: storing in a buffer, video segments which vary in size based onmovement in a field of view; locating in the buffer a prior videosegment occurring before the detection of motion; and transferring theprior video segment and subsequent video segments from the buffer to acomputer accessible storage medium.